package com.mdxl.first.Dao;


import com.mdxl.first.Dao.db.MongoDBWriteConnection;
import com.mdxl.first.util.KeegooConfig;
import com.mongodb.ReadPreference;


public class MongoWriterDAO extends AbstractMongoDAO{

	private static MongoWriterDAO instance = new MongoWriterDAO();
	
	private MongoWriterDAO(){
		super.dbConnection = new MongoDBWriteConnection();
		super.db = super.dbConnection.getDB(KeegooConfig.mongoDBName);
		/**
		 * primary 主节点，默认模式，读操作只在主节点，如果主节点不可用，报错或者抛出异常。
		   primaryPreferred 首选主节点，大多情况下读操作在主节点，如果主节点不可用，如故障转移，读操作在从节点。
		   secondary 从节点，读操作只在从节点， 如果从节点不可用，报错或者抛出异常。
		   secondaryPreferred 首选从节点，大多情况下读操作在从节点，特殊情况（如单主节点架构）读操作在主节点。
		   nearest	最邻近节点，读操作在最邻近的成员，可能是主节点或者从节点
		 */
		super.db.setReadPreference(ReadPreference.primaryPreferred());
	}
	
	public static MongoWriterDAO getInstance(){
		return instance;
	}
}
